package grape.composite.service.workcalendar.po;

import grape.common.service.po.NormalBasePo;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 工作日历表
 * </p>
 *
 * @author yangwei
 * @since 2019-12-23
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("composite_work_calendar")
public class WorkCalendar extends NormalBasePo<WorkCalendar> {

    private static final long serialVersionUID = 1L;

    /**
     * 默认的法定阳历节假日
     */
    public static final String defaultLegal[] = {
            "01-01", // 元旦
            "04-04", // 清明
            "05-01", // 五一
            "10-01" // 国庆
    };
    /**
     * 默认的法定阴历节假日
     */
    public static final String defaultLunarLegal[] = {
            "05-05", // 端午
            "08-15" // 清明
    };

    /**
     * 日期类型
     */
    public enum DateType{
        date_type_legal, // 法定节假日
        date_type_rest,  // 休息日
        date_type_work,  // 工作日
    }

    /**
     * 工作类型
     */
    public enum Type{
        all_day_work, // 全天工作
        all_day_rest,  // 全天休息
        day_am_rest_pm_work,  // 上午休息下午工作
        day_am_work_pm_rest,  // 上午工作下午休息
    }
    /**
     * 年
     */
    private Integer year;

    /**
     * 月
     */
    private Integer month;

    /**
     * 日
     */
    private Integer day;

    /**
     * 纯文本，内容，一般为额外添加了福利假或本来是法定节假日但不按国家规定
     */
    private String content;

    /**
     * 类型，字典id
     */
    private String typeDictId;

    /**
     * 日期类型，字典id
     */
    private String dateTypeDictId;
    /**
     * 描述
     */
    private String remark;


    @Override
    protected Serializable pkVal() {
        return null;
    }

}
